home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / vorbis / vorbisenc.h < prev    next >
C/C++ Source or Header  |  2005-12-20  |  3KB  |  113 lines

  1. /********************************************************************
  2.  *                                                                  *
  3.  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
  4.  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
  5.  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  6.  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
  7.  *                                                                  *
  8.  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001             *
  9.  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
  10.  *                                                                  *
  11.  ********************************************************************
  12.  
  13.  function: vorbis encode-engine setup
  14.  last mod: $Id: vorbisenc.h 7485 2004-08-05 14:54:23Z thomasvs $
  15.  
  16.  ********************************************************************/
  17.  
  18. #ifndef _OV_ENC_H_
  19. #define _OV_ENC_H_
  20.  
  21. #ifdef __cplusplus
  22. extern "C"
  23. {
  24. #endif /* __cplusplus */
  25.  
  26. #include "codec.h"
  27.  
  28. extern int vorbis_encode_init(vorbis_info *vi,
  29.                   long channels,
  30.                   long rate,
  31.  
  32.                   long max_bitrate,
  33.                   long nominal_bitrate,
  34.                   long min_bitrate);
  35.  
  36. extern int vorbis_encode_setup_managed(vorbis_info *vi,
  37.                        long channels,
  38.                        long rate,
  39.  
  40.                        long max_bitrate,
  41.                        long nominal_bitrate,
  42.                        long min_bitrate);
  43.  
  44. extern int vorbis_encode_setup_vbr(vorbis_info *vi,
  45.                   long channels,
  46.                   long rate,
  47.  
  48.                   float quality /* quality level from 0. (lo) to 1. (hi) */
  49.                   );
  50.  
  51. extern int vorbis_encode_init_vbr(vorbis_info *vi,
  52.                   long channels,
  53.                   long rate,
  54.  
  55.                   float base_quality /* quality level from 0. (lo) to 1. (hi) */
  56.                   );
  57.  
  58. extern int vorbis_encode_setup_init(vorbis_info *vi);
  59.  
  60. extern int vorbis_encode_ctl(vorbis_info *vi,int number,void *arg);
  61.  
  62.   /* deprecated rate management supported only for compatability */
  63. #define OV_ECTL_RATEMANAGE_GET       0x10
  64. #define OV_ECTL_RATEMANAGE_SET       0x11
  65. #define OV_ECTL_RATEMANAGE_AVG       0x12
  66. #define OV_ECTL_RATEMANAGE_HARD      0x13
  67.  
  68. struct ovectl_ratemanage_arg {
  69.   int    management_active;
  70.  
  71.   long   bitrate_hard_min;
  72.   long   bitrate_hard_max;
  73.   double bitrate_hard_window;
  74.  
  75.   long   bitrate_av_lo;
  76.   long   bitrate_av_hi;
  77.   double bitrate_av_window;
  78.   double bitrate_av_window_center;
  79. };
  80.  
  81.  
  82.   /* new rate setup */
  83. #define OV_ECTL_RATEMANAGE2_GET      0x14
  84. #define OV_ECTL_RATEMANAGE2_SET      0x15
  85.  
  86. struct ovectl_ratemanage2_arg {
  87.   int    management_active;
  88.  
  89.   long   bitrate_limit_min_kbps;
  90.   long   bitrate_limit_max_kbps;
  91.   long   bitrate_limit_reservoir_bits;
  92.   double bitrate_limit_reservoir_bias;
  93.  
  94.   long   bitrate_average_kbps;
  95.   double bitrate_average_damping;
  96. };
  97.  
  98.  
  99.  
  100. #define OV_ECTL_LOWPASS_GET          0x20
  101. #define OV_ECTL_LOWPASS_SET          0x21
  102.  
  103. #define OV_ECTL_IBLOCK_GET           0x30
  104. #define OV_ECTL_IBLOCK_SET           0x31
  105.  
  106. #ifdef __cplusplus
  107. }
  108. #endif /* __cplusplus */
  109.  
  110. #endif
  111.  
  112.  
  113.